package com.transaction.demo.accounting;

import feign.Request;
import feign.Retryer;
import feign.Logger;
import feign.Feign;
import feign.codec.ErrorDecoder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
@Configuration
public class FeignConfig {
 
    @Bean
    public Retryer feignRetryer() {
        // 设置重试策略，例如重试3次，每次间隔1秒
        return new Retryer.Default(1000, 3000, 3);
    }
 
    @Bean
    public Request.Options options() {
        // 设置连接超时和读取超时时间
        return new Request.Options(5000, 10000); // 连接超时5秒，读取超时10秒
    }
 
    @Bean
    public Logger.Level feignLoggerLevel() {
        // 设置日志级别，用于调试
        return Logger.Level.FULL;
    }
 
//    @Bean
//    public ErrorDecoder errorDecoder() {
//        // 自定义错误解码器
//        return new CustomErrorDecoder(); // 自定义错误处理类
//    }

}